package myzzyl.domain.vo;


import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import myzzyl.base.BaseVo;

import java.time.LocalDateTime;
import java.util.Set;


/**
 * 用户表
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SysUserVo {

    @Schema(description = "用户id")
    private Long id;

    @Schema(description = "用户账号")
    private String username;

//    @Schema(description = "密码")
//    private String password;

//    @Schema(description = "用户类型（0:系统用户,1:客户）")
//    private String userType;

    @Schema(description = "用户昵称")
    private String nickName;

    @Schema(description = "用户职位")
    private String post;

    @Schema(description = "用户部门")
    private String dept;

    @Schema(description = "用户邮箱")
    private String email;

    @Schema(description = "真实姓名")
    private String realName;

    @Schema(description = "手机号码")
    private String mobile;

    @Schema(description = "用户性别（0男 1女 2未知）")
    private String sex;

    @Schema(description = "备注")
    private String remark;

    @Schema(description = "选中节点")
    private String[] checkedIds;

    @Schema(description = "三方openId")
    private String openId;

    @Schema(description = "查询用户：用户角色Ids")
    private Set<String> roleVoIds;

    @Schema(description = "构建令牌：用户角色标识")
    private Set<String> roleLabels;

    @Schema(description = "构建令牌：用户权限路径")
    private Set<String> resourceRequestPaths;

    @Schema(description = "部门编号【当前】")
    private String deptNo;

    @Schema(description = "部门名称【当前】")
    private String deptName;

    @Schema(description = "职位编号【当前】")
    private String postNo;

    @Schema(description = "职位名称【当前】")
    private String postName;

    @Schema(description = "角色Id【当前】")
    private Long roleId;

    @Schema(description = "用户令牌")
    private String userToken;

    private String dataState;

    @Schema(description = "创建时间")
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    public LocalDateTime createTime;

    @Schema(description = "更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    public LocalDateTime updateTime;


    @Schema(description = "创建人")
    @TableField(fill = FieldFill.INSERT)
    private Long createBy;


    @Schema(description = "更新人")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long updateBy;

}
